package com.meituan.sdk.model.tuangouNg.smar.shopConfigUpload;

import com.meituan.sdk.annotations.ApiMeta;
import com.google.gson.reflect.TypeToken;
import javax.validation.constraints.NotBlank;
import java.lang.reflect.Type;
import com.meituan.sdk.internal.utils.JsonUtil;
import com.google.gson.annotations.SerializedName;
import javax.validation.constraints.NotNull;
import com.meituan.sdk.MeituanResponse;
import com.meituan.sdk.MeituanRequest;

/**
* 门店配置上传【必接】
* This file was automatically generated.
*/
@ApiMeta(
    path = "/tuangou/ng/smar/shop/config/upload",
    businessId = 1,
    apiVersion = "10015",
    apiName = "shop_config_upload",
    needAuth = true
)
public class ShopConfigUploadRequest implements MeituanRequest<ShopConfigUploadResponse> {
    /**
    * <p data-diff-id="ct-diff-id-3cf60899-c2c7-4cd6-8538-78e141d3f79b"><span style="color: rgb(51, 51, 51)">扫码点餐开关</span>,表示saas侧是否开通扫码点餐</p>
    */
    @NotNull(message = "hasOpenedOrdering不能为空")
    @SerializedName("hasOpenedOrdering")
    private Boolean hasOpenedOrdering;
    /**
    * <p data-diff-id="ct-diff-id-11ce138a-8864-4ac8-a02b-24c59924c87f"><span style="color: #333">支付模式,1:先付、2:后付</span></p>
    */
    @NotNull(message = "payMode不能为空")
    @SerializedName("payMode")
    private Integer payMode;
    /**
    * <p data-diff-id="ct-diff-id-60ec23b4-6ef6-4a46-b4a5-eb3a63713483">扩展预留字段</p>
    */
    @SerializedName("reqExt")
    private Map reqExt;
    /**
    * <p data-diff-id="ct-diff-id-89682eab-f58a-400d-8151-e47e59123849"><span style="color: #333">二维码生成类型：</span></p><p data-diff-id="ct-diff-id-e3d9b4f7-255f-4466-8047-94b6d23ff968"><span style="color: #333">PZ_H5, "品智H5"<br>WSH, "微生活"<br>QM3, "企迈"</span></p>
    */
    @NotBlank(message = "qrCodeGenerateType不能为空")
    @SerializedName("qrCodeGenerateType")
    private String qrCodeGenerateType;

    public Boolean getHasOpenedOrdering() {
        return hasOpenedOrdering;
    }
    public void setHasOpenedOrdering(Boolean hasOpenedOrdering) {
        this.hasOpenedOrdering = hasOpenedOrdering;
    }
    public Integer getPayMode() {
        return payMode;
    }
    public void setPayMode(Integer payMode) {
        this.payMode = payMode;
    }
    public Map getReqExt() {
        return reqExt;
    }
    public void setReqExt(Map reqExt) {
        this.reqExt = reqExt;
    }
    public String getQrCodeGenerateType() {
        return qrCodeGenerateType;
    }
    public void setQrCodeGenerateType(String qrCodeGenerateType) {
        this.qrCodeGenerateType = qrCodeGenerateType;
    }


    @Override
    public MeituanResponse<ShopConfigUploadResponse> deserializeResponse(String response) {
        Type type = new TypeToken<MeituanResponse<ShopConfigUploadResponse>>(){}.getType();
        return JsonUtil.fromJson(response, type);
    }
    @Override
    public String serializeToJson() {
        return JsonUtil.toJson(this);
    }


    @Override
    public String toString() {
        return "ShopConfigUploadRequest{" + "hasOpenedOrdering=" + hasOpenedOrdering + "," + "payMode=" + payMode + "," + "reqExt=" + reqExt + "," + "qrCodeGenerateType=" + qrCodeGenerateType + "}";
    }
}
